﻿// MFCPlaneWarDlg.h: 头文件
//
#pragma once

#define ENEMY 3              //宏定义敌机密度
#define PLANEBULLTE 35       //自己飞机子弹密度
#define ENEMYBULLTE 15       //敌机子弹密度

// CMFCPlaneWarDlg 对话框
class CMFCPlaneWarDlg : public CDialogEx
{
	
public:

	//定义子弹的结构体
	struct Bullte      
	{
		int b_x = 0;
		int b_y = 0;
		bool life = false;   //子弹是否超出游戏界面，若超出则子弹消失
	};

	//创建敌机结构体，敌机初始坐标
	struct Enemy
	{
		int e_x = 0;
		int e_y = 0;
		Bullte bullte[ENEMYBULLTE]; //创建一个敌机子弹的密度
		int numPlane;                //敌机的种类
		bool life = false;            //敌机是否存活，是否中弹
	}enemy[ENEMY];
	
	//自己飞机初始坐标
	struct Airplane
	{
		int m_x = 250;
		int m_y = 650;
		Bullte bullte[PLANEBULLTE];//子弹密度
		bool life = false;//是否存活
	}plane;
	int mark = 0;
	

	//检测鼠标是否按下   1 按 0 放
	int mousemode = 0;
	//检测是否开火，游戏是否开始
	int fire = 0;

// 构造
public:
	CMFCPlaneWarDlg(CWnd* pParent = nullptr);	// 标准构造函数

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_MFCPLANEWAR_DIALOG };
#endif

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持

														
// 实现
protected:
	HICON m_hIcon;

	// 生成的消息映射函数
	virtual BOOL OnInitDialog();
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
public:

	virtual BOOL PreTranslateMessage(MSG* pMsg);
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
	// 打印图片
	void PrintPlaneImage(int x, int y, int numPlane);


	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnTimer(UINT_PTR nIDEvent);
	// 创建敌机
	void SetEnemy();
	// 打印子弹图片
	void PrintBullteImage(int b_x, int b_y, int numBullte);
	// 判断中弹
	void GetShot();
	// 是否开火
	void OpenFire();
	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
	// 开始提示语
	CStatic m_begin;
	// 得分
//	CStatic m_mark;
};
